package com.jie.langlangmall.service;

import com.jie.langlangmall.dto.PmsProductAttributeParam;
import com.jie.langlangmall.dto.ProductAttrInfo;
import com.jie.langlangmall.model.PmsProductAttribute;
import org.springframework.transaction.annotation.Transactional;

import java.util.List;

/**
 * @Author Jie
 * @Date 2024/11/23
 * @Email 3217998214@qq.com
 * @Description 商品属性管理
 */
public interface PmsProductAttributeService {

    /**
     * 根据分类查询属性列表
     *
     * @param cid
     * @param type
     * @param pageSize
     * @param pageNum
     * @return
     */
    List<PmsProductAttribute> list(Long cid, Integer type, Integer pageSize, Integer pageNum);

    /**
     * 根据ID查询属性的详情
     *
     * @param id
     * @return
     */
    PmsProductAttribute getItem(Long id);

    /**
     * 更新属性信息
     *
     * @param id
     * @param productAttributeParam
     */
    void update(Long id, PmsProductAttributeParam productAttributeParam);

    /**
     * 批量删除
     *
     * @param ids
     */
    @Transactional
    void delete(List<Long> ids);

    /**
     * 获取商品分类对应属性列表
     *
     * @param productCategoryId
     * @return
     */
    List<ProductAttrInfo> getProductAttrInfo(Long productCategoryId);

    /**
     * 新增商品属性
     *
     * @param productAttributeParam
     */
    @Transactional
    void create(PmsProductAttributeParam productAttributeParam);
}
